<?php
namespace app\job;

use think\facade\Db;
use think\queue\Job;

class Test{

    public function fire(Job $job, $data){

        //....这里执行具体的任务
//        sleep(3);
//        var_dump($data);
        try {
            Db::table("bank")->where("id","=",$data['id'])->update(['create_time'=>date('Y-m-d H:i:s')]);
            echo "success" . $data['user_name'] . PHP_EOL;
        } catch (\Exception $e) {
            echo "exception: " . $e->getMessage();
            myLog("Test",$e->getMessage(),"queue.log");
        }
//        var_dump($job->attempts());
        $job->delete();
        //通过这个方法可以检查这个任务已经重试了几次了
        //如果任务执行成功后 记得删除任务，不然这个任务会重复执行，直到达到最大重试次数后失败后，执行failed方法
//        if ($job->attempts() > 1) {
//            $job->delete();
//        }

        // 也可以重新发布这个任务, $delay为延迟时间
//        $delay = 3;
//        $job->release($delay);

    }

    public function failed($data){
        var_dump('失败了!!!');
        // ...任务达到最大重试次数后，失败了
    }

}
